using System.Collections.Generic;
using System.Text;
using UniFramework.Actor;
using UniFramework.Aoe;
using UnityEngine;

namespace UniFramework.Battle
{
	public class AoeData
	{
		public static Dictionary<string, AoeOnCreate> onCreateFunc = new Dictionary<string, AoeOnCreate>()
		{
			{ "CreateSightEffect", null }
		};

		public static Dictionary<string, AoeOnRemoved> onRemovedFunc = new Dictionary<string, AoeOnRemoved>()
		{
			{ "OnAoeOnRemoved", null },
		};

		public static Dictionary<string, AoeOnTick> onTickFunc = new Dictionary<string, AoeOnTick>()
		{
			{ "BlackHole", null }
		};

		public static Dictionary<string, AoeOnCharacterEnter> onChaEnterFunc =
			new Dictionary<string, AoeOnCharacterEnter>()
			{
				{ "OnChaEnterTest", OnChaEnterTest }
			};

		public static Dictionary<string, AoeOnCharacterLeave> onChaLeaveFunc =
			new Dictionary<string, AoeOnCharacterLeave>()
			{
				{ "OnChaLeaveFunc", OnChaLeaveFunc }
			};

		public static Dictionary<string, AoeOnBulletEnter> onBulletEnterFunc =
			new Dictionary<string, AoeOnBulletEnter>()
			{
			};

		public static Dictionary<string, AoeOnBulletLeave> onBulletLeaveFunc =
			new Dictionary<string, AoeOnBulletLeave>()
			{
			};
		// public static Dictionary<string, AoeTween> aoeTweenFunc = new Dictionary<string, AoeTween>(){
		// 	{"AroundCaster", AroundCaster},
		// 	{"SpaceMonkeyBallRolling", SpaceMonkeyBallRolling}
		// };

		private static void OnChaEnterTest(LogicAoe aoe, List<LogicActor> actorList)
		{
			StringBuilder sb = new StringBuilder();
			foreach (var actor in actorList)
				sb.Append(actor.name + "_");
			Debug.Log("OnChaEnterTest:" + sb.ToString());
			sb.Clear();
		}

		private static void OnChaLeaveFunc(LogicAoe aoe, List<LogicActor> actorList)
		{
			StringBuilder sb = new StringBuilder();
			foreach (var actor in actorList)
				sb.Append(actor.name + "_");
			Debug.Log("OnChaLeaveFunc" + sb.ToString());
			sb.Clear();
		}
	}
}